package gruppoF.mainTests;

/**
 * NOTA: E' STATA IMPLEMENTATA LA FUNZIONALITA' PER FORMATTARE LA DATA, IL TEST RISULTA FALLITO
 * POICHE LA MEDESIMA ANDREBBE IMPLEMENTATA ANCHE NELLA CLASSE SERVIZIO
 */
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;

import gruppoSoluzione.mainService.services.HttpMessageWriter;
import gruppoSoluzione.mainService.services.MimeHTTP;

import org.junit.Test;

public class TestMessageWriter {
	
	@Test
	public void test01(){
		
		
		SimpleDateFormat formatter = new SimpleDateFormat("yy:MM:dd hh:mm:ss");
		Date date = Calendar.getInstance().getTime();
		
		
		HttpMessageWriter writer = new HttpMessageWriter(MimeHTTP.getMimeByFilename("pota.xml"));
		
		ArrayList<String> rispostaAttesa=new ArrayList<String>();
		
		
		Collections.addAll(rispostaAttesa, "HTTP/1.1 200 OK", 
				"Date: "+formatter.format(date),
				"Content-Type: "+gruppoSoluzione.mainService.services.MimeHTTP.getMimeByFilename("pota.xml").getValue()+"; charset=utf-8",
				"","<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
		
		ArrayList<String> rispostaGenerata = writer.createHttpMessageHeader();
		
		
		
		assertEquals(rispostaAttesa.size(), rispostaGenerata.size());
		Collections.sort(rispostaGenerata);
		Collections.sort(rispostaAttesa);
		
//		for (String string : rispostaGenerata) {
//			System.err.println(string);
//		}
//		System.err.println("-------------------");
//		for (String string : rispostaAttesa) {
//			System.err.println(string);
//		}
		
		for (int i = 0; i < rispostaGenerata.size(); i++) {
			if(!(rispostaGenerata.get(i).
					equalsIgnoreCase(rispostaAttesa.get(i)))){
				fail("Test Fallito su "+rispostaAttesa.get(i));
			}
		}
	}
	
	
	@Test
	public void test02(){
		
		SimpleDateFormat formatter = new SimpleDateFormat("yy:MM:dd hh:mm:ss");
		Date date = Calendar.getInstance().getTime();
		
		
		HttpMessageWriter writer = new HttpMessageWriter(MimeHTTP.getMimeByFilename("pota.html"));
		
		ArrayList<String> rispostaAttesa=new ArrayList<String>();
		
		
		Collections.addAll(rispostaAttesa, "HTTP/1.1 200 OK", 
				"Date: "+formatter.format(date),
				"Content-Type: "+gruppoSoluzione.mainService.services.MimeHTTP.getMimeByFilename("pota.html").getValue()+"; charset=utf-8",
				"");
		
		ArrayList<String> rispostaGenerata = writer.createHttpMessageHeader();
		
		
		
		assertEquals(rispostaAttesa.size(), rispostaGenerata.size());
		Collections.sort(rispostaGenerata);
		Collections.sort(rispostaAttesa);
		
//		for (String string : rispostaGenerata) {
//			System.err.println(string);
//		}
//		System.err.println("-------------------");
//		for (String string : rispostaAttesa) {
//			System.err.println(string);
//		}
		
		for (int i = 0; i < rispostaGenerata.size(); i++) {
			if(!(rispostaGenerata.get(i).
					equalsIgnoreCase(rispostaAttesa.get(i)))){
				fail("Test Fallito su "+rispostaAttesa.get(i));
			}
		}
	}
}
